package com.hsgene.supplier.persistence;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.common.util.support.LimitHelper;
import com.hsgene.supplier.condition.SupplierCondition;
import com.hsgene.supplier.domain.DetectionOrganization;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 供应商-检测机构Repository
 *
 * @author wangbing
 * @version 1.0, 2018/7/12
 */
@Repository
public interface DetectionOrganizationRepository {

    /**
     * 根据供应商id查找供应商信息
     *
     * @param supplierId 供应商id
     * @return 供应商信息
     */
    DetectionOrganization findById(@Param("supplierId") Long supplierId);

    /**
     * 获取相同名称的供应商数量
     *
     * @param supplierName 供应商名称
     * @return 数量
     */
    List<DetectionOrganization> queryBySupplierName(@Param("supplierName") String supplierName);

    /**
     * 保存检测机构信息
     *
     * @param detectionOrganization 检测机构信息
     */
    void save(@Param("detectionOrganization") DetectionOrganization detectionOrganization);

    /**
     * 更新检测机构信息
     *
     * @param detectionOrganization 检测机构信息
     */
    void update(@Param("detectionOrganization") DetectionOrganization detectionOrganization);

    /**
     * 查询检测机构列表
     *
     * @param condition   查询条件
     * @param limitHelper 分页餐宿
     * @return 检测机构列表
     */
    List<DetectionOrganization> query(
            @Param("condition") SupplierCondition condition,
            @Param("limitHelper") LimitHelper limitHelper);

    /**
     * 查询符合条件的检测机构数量
     *
     * @param condition 查询条件
     * @return 数量
     */
    int queryCount(@Param("condition") SupplierCondition condition);

    /**
     * 获取全部机构
     * @return
     */
    List<DetectionOrganization>  queryDetectionsAll();
}
